#pragma once
#include "Animal.h"
#include <map>
#include <string>
using namespace std;
class AnimalFactory
{

private:
	typedef Animal* (*FUNC)(void);
	map<string, FUNC> classMap;


public:
	AnimalFactory();
	~AnimalFactory();

	Animal* CreateAnimal(string name);

	static AnimalFactory* getAnimalFactory();

	void resiger(string className, FUNC funcName);

};

